Conventionally, a distributed document processing system that connects independent function devices such as input devices including an image scanner, digital camera, facsimile receiver, and the like, and output devices including a printer, facsimile transmitter, and the like via a network, and provides a composite function by combining the functions of these independent function devices have been extensively developed and studied. Likewise, a multi-function product (MFP) that integrates the functions of the independent function devices in a single housing is required to extract its internal independent function and to combine it with the function of another device via a network so as to flexibly implement various composite functions.
As a programming model that allows to easily provide functions in information processing devices distributed in the network, remote procedure call (RPC) and distributed object techniques are prevalent. The distributed object technique corresponds to an object-oriented software model expanded to a distributed system, and allows an object on a given node to call an operation for an object on another network node (through the network) in the same procedure as a procedure in which an object on a given network node calls an operation for another object on the identical node.
In document processing including document input and output processes, flexible collaboration of a plurality of functions can be achieved by applying the distributed object technique. As proposals of a system based on the distributed object, which considers distributed processes other than information processes such as pure computations, JINI as an application of Java proposed by Sun Microsystems, and a common facility for a print process in CORBA proposed by Object Management Group (OMG) are known.
When various devices for document processes connected to the network can be controlled by the distributed object technique, a flexible client application which can freely combine various devices that provide objects based on a predetermined interface can be easily described.
By making an application execute the following operations, a client application that can dynamically cope with a change in control interface upon expansion of devices or the like can be easily described. First, the application dynamically inquires of a node which provides an object about an interface for operating that object. Second, the application dynamically acquires interface information of a stub which hides a communication with a server object which is located at a remote place and actually provides services. Third, the application dynamically downloads a proxy object.
However, in the prior art, the following problems are posed upon combining the functions of document processing devices on an operation environment of the client application.
More specifically, a case will be examined below wherein a client application that implements a required combined function by combining document processing devices which are connected via a network and have independent and composite functions is described, and especially, document input and output devices are combined. For example, an image scanner as the document input device and an image printer as the document output device are combined to realize a network-distributed copying machine. In such case, a client application calls a scan function of the image scanner to acquire image data of a document image. In general, the image data has a very large data size. The client application then calls a print function of the image printer, and proceeds with transfer of image data acquired by the scanner to the printer. In this way, when viewed from the client application, an application can be described using simple, integrated function calls regardless of the locations of objects and network nodes. Therefore, various document processing devices can be easily combined. However, the following problems are posed.
That is, since image data transfer processes from the scanner to the client application and then from the client application to the printer are executed, heavy communication traffic is produced on the network. The operation environment of the client application requires a large storage area, which occupies most of the storage capacity. Since these problems consume precious resources in large quantities, the cost problem is posed.
Especially, even when document image data is not used in practice like in a case wherein the printer goes to an error state after the beginning of document input from the scanner, image data is transferred from the scanner to the client application. For this reason, dead communication traffic increases on the network, and the storage area for the operation of the client application is wasted. Also, even when the scanner and printer as independent devices operate in combination, two transfer processes of image data from the scanner to the client application and from the client application to the printer are required, thus increasing dead communication traffic on the network and wasting the storage area for the operation of the client application.